热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

贡献者|可能会_OpenStackOcataHorizon开发——快速开始

篇首语:本文由编程笔记#小编为大家整理,主要介绍了OpenStackOcataHorizon开发——快速开始相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了OpenStack Ocata Horizon 开发—— 快速开始相关的知识,希望对你有一定的参考价值。



一、写在前面

这篇文章主要介绍了OpenStack Ocata Horizon 根据官方的快速开始文档进行实际的调试验证,涉及在基于基本组件部署完成的情况下,源码部署Horizon开发环境,在后续的文章中将通过不同的文章来具体来说明开发,不涉及OpenStack Ocata 其他组件部署,由于作者能力或者理解不够如果错误请告知, 如果转载,请保留作者信息。

邮箱地址:jpzhang.ht@gmail.com
个人博客:https://jianpengzhang.github.io/
CSDN博客:http://blog.csdn.net/u011521019


二、Horizon (OpenStack Dashboard)

Horizon是一个基于Django的项目,旨在提供一个完整的OpenStack仪表板,以及一个可扩展框架,用于从可重用组件来构建新的仪表板。 openstack_dashboard模块是Django站点的实现,它使用Horizon APP来提供与各种OpenStack项目基于Web的交互。

项目页面:https://launchpad.net/horizon
蓝图和功能规格:https://blueprints.launchpad.net/horizon
问题跟踪:https://bugs.launchpad.net/horizon
源代码:https://github.com/openstack/horizon
代码审查:
[https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z]
(https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z)
持续集成:
Jenkinshttps://jenkins.openstack.org ;
Zuulhttp://status.openstack.org/zuul


三、使用Horizon

请参阅doc/source/topics/install.rst 有关如何在OpenStack中安装Horizon。 它描述了示例步骤,并提供了更详细的设置和配置的指针。也可以在http://docs.openstack.org/developer/horizon/topics/install.html上找到。

Horizon界面功能使用请参考:https://docs.openstack.org/user-guide/common/conventions.html


四、开发人员入门

doc/source/quickstart.rst 或http://docs.openstack.org/developer/horizon/quickstart.html介绍如何设置Horizon开发环境并开始开发。


五、构建贡献者文档

OpenStack Horizon 源码包目录中有一个目录为:horizon-stable-ocata/doc:

.
├── Makefile
└── source
├── browser_support.rst
├── conf.py
├── contributing.rst
├── faq.rst
├── glossary.rst
├── images
├── index.rst
├── intro.rst
├── plugin_registry.rst
├── quickstart.rst
├── ref
├── testing.rst
├── topics
└── tutorials

这里面是由贡献者撰写的关于Horizon使用的文档,与http://docs.openstack.org/developer/horizon/quickstart.html内容是一直的,如果觉得网页浏览查看速度慢或者环境限制不能上网可以通过构建成html在本地进行浏览,源文件使用reStructuredText维护在doc/source目录中,由Sphinx构建.

自动建筑命令:

$ ./run_tests.sh --docs

如果想知道更多run_tests.sh的功能,可以./run_tests.sh --help查阅,通过该方式构建文档,通过virtualenv建立一个隔离的环境。

手动建筑命令:

$ tools / with_venv.sh sphinx-build doc / source

doc/build/html目录中:

.
├── browser_support.html
├── contributing.html
├── faq.html
├── genindex.html
├── glossary.html
├── _images
├── index.html
├── intro.html
├── _modules
├── objects.inv
├── plugin_registry.html
├── py-modindex.html
├── quickstart.html
├── ref
├── search.html
├── searchindex.js
├── _sources
├── _static
├── testing.html
├── topics
└── tutorials

六、Horizon UI开发环境部署

这里认为你已经部署好了一个openstack ocata基础环境,仅演示手动部署horizon UI开发环境。


(1)、基础准备

通过Virtualenv,创建一个隔离的horizon部署环境,
pip安装virtualenv:

apt-get install python-pip
pip install virtualenv 或者 apt-get install python-virtualenv

创建一个独立的Horizon运行环境:

virtualenv --no-site-packages horizon.venv
输出:
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/work/horizon.venv/bin/python2
Also creating executable in /home/work/horizon.venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

source进入该环境:

source horizon.venv/bin/activate
(horizon.venv) root@ubuntu:/home/work#

退出当前的venv环境,使用deactivate命令:

(horizon.venv) root@ubuntu:/home/work# deactivate
root@ubuntu:/home/work#

(2)、安装 Horizon

下载 Horizon 代码:

git clone https://github.com/openstack/horizon.git
cd horizon/

安装 Horizon 用于开发:在horizon目录下执行,

pip install -e .

出错:

_setup/include/cext.h:34:20: fatal error: Python.h: No such file or directory
#include "Python.h"

执行如下命令解决问题,在重复执行上面的命令:

sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev python3-pip

配置环境:

cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py

vi openstack_dashboard/local/local_settings.py

ALLOWED_HOSTS = '*'
# ...
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default' # 如果 Domain 的 ID 不是 default,则为对应的 ID
# ...
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
# ...
OPENSTACK_HOST = "172.16.17.59" # 控制节点IP地址
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #根据你的环境自己配置这个参数,这里我是‘user’
# ...
OPENSTACK_API_VERSIONS =
"identity": 3,
"image": 2,
"volume": 2,
# ...
# 根据你的网络环境配置这里的参数
OPENSTACK_NEUTRON_NETWORK =
#...
'enable_router': False,
'enable_quotas': False,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,

初始化静态文件 注意:一定要先执行此步骤再启动服务!否则再执行因为缓存还是不能正常运行,需要在 collectstatic 时增加 -c 参数

python manage.py collectstatic -l
python manage.py compress --force

启动 Horizon 项目:

python manage.py runserver 0.0.0.0:8001

出错:

AttributeError: DjangoTranslation instance has no attribute 'plural'

执行如下命令解决问题:

cd horizon/openstack_dashboard
django-admin compilemessages

(3)、小结

完成上述配置,一个简单的 OpenStack UI 开发环境就搭建完成了。当然每个人的环境不一致,可能会遇到一些奇怪的问题,需要静下心满满解决这些问题。


推荐阅读
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 1jdk去网站下载,然后拷贝到linux上;或直接wgethttp:download.oracle.comotn-pubjavajdk8u181-b1 ... [详细]
  • jenkins 搭建配置
    jenkins部署安装方法一: 下载jenkinswar包  wgethttp:mirrors.jenkins.iowar-stablelatestjenkins.war运行jen ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
author-avatar
罗伯特1980_823
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有